//#include <stdio.h>
//
//int main() {
//    int n;
//    while (scanf("%d", &n) != EOF) { // 多组输入直到文件结束
//        for (int i = 0; i < n; i++) { // 遍历每一行
//            if (i == 0 || i == n - 1) { // 首行或末行
//                for (int j = 0; j < n; j++) {
//                    printf("* ");
//                }
//                printf("\n");
//            }
//            else { // 中间行
//                printf("* "); // 第一个星号
//                for (int j = 0; j < 2 * (n - 2); j++) { // 中间的空格
//                    printf(" ");
//                }
//                printf("*\n"); // 最后一个星号及换行
//            }
//        }
//    }
//    return 0;
//}
矩阵转置
#include <stdio.h>

int main() {
    int n, m;
    scanf("%d %d", &n, &m);
    int matrix[10][10]; // 根据题目范围定义足够大的数组

    // 读取原始矩阵
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            scanf("%d", &matrix[i][j]);
        }
    }

    // 输出转置矩阵
    for (int j = 0; j < m; j++) {    // 转置后的行数（原列数）
        for (int i = 0; i < n; i++) { // 转置后的列数（原行数）
            printf("%d ", matrix[i][j]); // 每个数后带空格
        }
        printf("\n"); // 换行
    }

    return 0;
}